#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

//void test()
//{
///*	int a[3][2] = { 1, 2, 3, 4, 5, 6 }, * p[3];
//	p[0] = a[1];
//	printf("%d %d", *(p[0] + 1), a[1][1])*/;
//
//
//}

//int fun(int n)
//{
//	int prod = 1, i = 0;
//	for (i = 1; i <= n; i++)
//	{
//		prod *= i;
//	} 
//	return prod;
//}

//int findPeakElement(int* nums, int numsLen)
//{
//	// write code here
//	int i = 0;
//	for (i = 1; i < numsLen - 1; i++)
//	{
//		if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1])
//			return i;
//	}
//
//	if (nums[0] > nums[1])
//		return 0;
//	if (nums[numsLen - 1] > nums[numsLen - 2])
//		return numsLen - 1;
//}
//int main()
//{
//	test();
//	//int x = fun(13);
//	int arr[] = { 2,4,1,2,7,8,4 };
//	int x = findPeakElement(arr, 7);
//	return 0;
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int num = 0;
//	while (n--)
//	{
//		int ai;
//		scanf("%d", &ai);
//		num ^= ai;
//	}
//	printf("%d", num);
//	return 0;
//}
//int findPeakElement(int* nums, int numsLen)
//{
//	// write code here
//	int i = 0;
//	for (i = 1; i < numsLen - 1; i++)
//	{
//		if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1])
//			return i;
//	}
//
//	int ret = 0;
//	if (nums[numsLen - 1] > nums[numsLen - 2])
//		ret = numsLen - 1;
//	return ret;
//}
//typedef union
//{
//	int a;
//	struct
//	{
//		short b;
//		short c;
//	};
//}X;
//int main()
//{
//	//X x;
//	//x.a = 0x20150810;
//	//printf("%x,%x\n", x.b, x.c);
//
//	unsigned char i = 7;
//	int j = 0;
//	for (; i > 0; i -= 3)
//	{
//		++j;
//	}
//	printf("%d\n", j);
//	return 0;
//}

//int main()
//{
//    int n, k;
//    scanf("%d%d", &n, &k);
//    int x = 0;
//    int count = 0;
//    for (x = 1; x <= n; x++)
//    {
//        int y = 0;
//        for (y = 1; y <= n; y++)
//        {
//            if (x % y >= k)
//                count++;
//        }
//    }
//    printf("%d", count);
//    return 0;
//}
int main()
{
    int k = 0;
    char ch[1001];
    gets(ch);
    scanf("%d", &k);
    ch[k] = '\0';
    puts(ch);
    return 0;
}